<lgrobol@parisnanterre.fr>Permet de faire des requêtes dans Google Books :
Exemple : « vélocipède » vs « vélo » vs « bicyclette »
→ L’évolution des fréquences relatives des n-grammes dans le corpus
« the United States are » ou « the United States is »
*Le token * : remplace n’import quel mot.
Exemple : une colère * donne les fréquences de trigrammes dont les deux premiers mots sont « une » et « colère »
Expressions régulières = ER = Regex
Définition de critères de recherche pour des chaînes de caractères
Outils :
On va avoir besoin d’un bon éditeur de texte brut, par exemple :
Ou dans https://regex101.com ou Google drive en désespoir de cause.
Pour tester :
Duchn-utf8.txtmadeleine reconnaît madeleine mais pas MadeleineFrance 2 reconnaît France 2 mais pas France2 ni France 3Ils portent sur l’élément qui précède et indiquent une répétition
| Quantificateur | ? |
* |
+ |
|---|---|---|---|
| Signification | « 0 ou 1 fois » | « 0 ou plusieurs fois » | « 1 ou plusieurs fois » |
jolie? matche joli et joliecoup?s matche cous et coups, mais pas coupajolie* matche joli, jolie, joliee, jolieee…jolie+ matche jolie, joliee, jolieee…Exercice : que reconnaissent les expressions suivantes ?
pommes?a?typiquelo*lloo*llo+l(Tester vos réponses dans un éditeur)
Les accolades indiquent un intervalle de répétitions :
lo{1,3}ng reconnaît long, loong et looonglo{3,} reconnaît looong, loooong, etc.lo{3}ng ne reconnaît que looongExercice : écrire une expression régulière qui reconnaît exclusivement lool, loool et looool.
Les crochets indiquent un ensemble de caractères à reconnaître :
[ab] reconnaît une lettre : a ou b[a-c] reconnaît les lettres de a à c[a-z] reconnaît les lettres de l’alphabet en minuscules[a-zA-Z] reconnaît aussi les majuscules*Exercice :
Que reconnaît :
[ab][ab][MmRr]aisonÉcrire une expression régulière qui reconnaît exclusivement :
moi, toi et soi .ci, si, ce et se.(Tester vos réponses dans un éditeur)
Avec un circonflexe au début : négation de l’ensemble
On peut les combiner avec les quantificateurs :
[aeiouy]+ reconnaît une suite de voyelles : a, aa, ae, iey…[^<]* reconnaît une suite de caractères différents de <Les parenthèses permettent de construire des groupes
(ab)+ reconnaît une suite de ab : ab, abab, ababab…([ab]c)+ reconnaît ac, bc, acac, acbc, bcac…([aeiouy][^aeiouy])+ reconnait une suite de couples voyelle-consonne.Le pipe indique une alternative :
machin|truc reconnaît machin et truc.je|tu|nous reconnaît je, tu et nous.je|tu|[nv]ous reconnaît je, tu, nous et vous.On les utilise le plus souvent avec des parenthèses
(m|r)aison est équivalent à [mr]aison.(il|elle|iel)s? reconnaît il, elle, iel et leurs versions plurielles.Exercice : que reconnaissent les expressions suivantes ?
| Caractère | Sens | Exemple |
|---|---|---|
. |
n’importe quel caractère | p.re : pare, pire, père… |
^ |
début de ligne | ^Je (début de ligne) |
$ |
fin de ligne | informatique$ (fin de ligne) |
\b |
frontière de mot (début ou fin de mot) | \bjour : journée mais pas ajouré |
\n |
saut de ligne | a\n : a puis saut de ligne |
\t |
tabulation | a\t : a puis tabulation |
Exercices : à quoi correspondent ces expressions ?
Nom\tPrénom\bcap\b\bcappremier paragraphe\ndeuxième paragrapheOn a vu un certain nombre de métacaractères (les caractères avec une signification spéciale).
Pour les reconnaître littéralement (les déspécialiser), il faut les faire précéder d’un anti-slash \ :
\^machin : reconnaît ^machin3\.0 reconnaît 3.0 mais pas 310$, [, ], (, ), *, +, ?, {, }Et pour représenter un anti-slash ? Pareil
machin\\bidule reconnaît machin\biduleDans le fichier Père Duchesne :
^.évolutionr?évolutionr ?r ?a et finissant par er ?er en fin de ligne ?| Classe | Signification | Équivalent |
|---|---|---|
\d |
un chiffre | [0-9] |
\D |
tout sauf un chiffre | [^0-9] |
\w |
les caractères alphanumériques et _ | [a-zA-Z0-9âàéèêëôûüù_] |
\W |
tout sauf les caractères alphanumériques et _ | [^a-zA-Z0-9âàéèêëôûüù_] |
\s |
une espace | espace + \t + \n… |
\S |
tout sauf une espace | … |
Notes :
\X reconnaît le contraire de \x\w et \s peut varier suivant les moteurs de regexFaire les quatre premiers niveaux sur : https://alf.nu/RegexGolf
Par exemple, si l’entrée est AHHHHHHHHH :
AH+ reconnaît la plus longue suite de caractères : AHHHHHHHHHAH+? reconnaît la plus petite suite de caractères : AH7On peut utiliser des références numérotées pour rappeller le contenu d’un groupe :
(spam|egg), sausage and \1 reconnaît :
spam, sausage and spamegg, sausage and eggegg, sausage and spam